home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_tut / tritest.ada < prev    next >
Text File  |  1996-01-30  |  3KB  |  71 lines

  1. with Text_IO; use Text_IO;
  2. procedure Tritest is
  3.    Passed : Boolean := True;
  4.    type Triangle is (Equilateral, Isosceles, Scalene, Not_a_Triangle);
  5.    function Tritype(Len1, Len2, Len3 : in Integer) return Triangle
  6.                                                           is separate;
  7.    procedure Compare(A, B, C: in Integer; Right_Answer : in Triangle)
  8.                                                           is separate;
  9. begin
  10.    Compare( 3,  4,  5, Scalene);
  11.    Compare( 6,  3,  4, Scalene);
  12.    Compare( 4,  3,  6, Scalene);
  13.    Compare( 3,  3,  3, Equilateral);
  14.    Compare( 3,  3,  4, Isosceles);
  15.    Compare( 3,  4,  3, Isosceles);
  16.    Compare( 4,  3,  3, Isosceles);
  17.    Compare( 7,  7,  4, Isosceles);
  18.    Compare( 7,  4,  7, Isosceles);
  19.    Compare( 4,  7,  7, Isosceles);
  20.    Compare( 1,  1,  1, Equilateral);
  21.    Compare( 0,  4,  4, Not_a_Triangle);
  22.    Compare( 4,  0,  4, Not_a_Triangle);
  23.    Compare( 4,  4,  0, Not_a_Triangle);
  24.    Compare( 0,  4,  3, Not_a_Triangle);
  25.    Compare( 3,  0,  4, Not_a_Triangle);
  26.    Compare( 4,  3,  0, Not_a_Triangle);
  27.    Compare(-1,  4,  4, Not_a_Triangle);
  28.    Compare( 4, -1,  4, Not_a_Triangle);
  29.    Compare( 4,  4, -1, Not_a_Triangle);
  30.    Compare(-1,  4,  3, Not_a_Triangle);
  31.    Compare( 3, -1,  4, Not_a_Triangle);
  32.    Compare( 4,  3, -1, Not_a_Triangle);
  33.    Compare( 2,  4,  6, Not_a_Triangle);
  34.    Compare( 1,  3,  2, Not_a_Triangle);
  35.    Compare( 3,  1,  2, Not_a_Triangle);
  36.    Compare( 1,  2,  4, Not_a_Triangle);
  37.    Compare( 1,  4,  2, Not_a_Triangle);
  38.    Compare( 4,  1,  2, Not_a_Triangle);
  39.    Compare( 0,  0,  0, Not_a_Triangle);
  40.    Compare( 0,  0,  4, Not_a_Triangle);
  41.    Compare( 0,  4,  0, Not_a_Triangle);
  42.    Compare( 4,  0,  0, Not_a_Triangle);
  43.    Compare( 3,  3,  7, Not_a_Triangle);
  44.    Compare( 3,  7,  3, Not_a_Triangle);
  45.    Compare( 6,  3,  3, Not_a_Triangle);
  46.    Compare(-3, -4, -5, Not_a_Triangle);
  47.    if Passed then
  48.       Put_Line("Congratulations, you completed the assignment!");
  49.    end if;
  50. end Tritest;
  51.  
  52. separate (Tritest)
  53. procedure Compare(A, B, C: in Integer; Right_Answer : in Triangle) is
  54.    package Int_IO is new Integer_IO(Integer); use Int_IO;
  55.    package Tri_IO is new Enumeration_IO(Triangle); use Tri_IO;
  56.    My_Answer : Triangle := Tritype(A, B, C);
  57. begin
  58.    if My_Answer /= Right_Answer Then
  59.       Put("Sides:");
  60.       Put(A, Width => 3);
  61.       Put(B, Width => 3);
  62.       Put(C, Width => 3);
  63.       Put("   My answer: ");
  64.       Put(My_Answer, Width => 14);
  65.       Put("   Right answer: ");
  66.       Put(Right_Answer);
  67.       New_Line;
  68.       Passed := False;
  69.    end if;
  70. end Compare;
  71.